子字符串(Substring)是什么以及如何获取?
子字符串(Substring)是从一个字符串(String)中提取的一部分字符。在 SPSS 中提取子字符串可以使用 CHAR.SUBSTR
(SPSS 16 及更高版本) 或 SUBSTR
(SPSS 15 及更低版本) 函数。string CHAR.SUBSTR
接受两个或三个参数,如下面的最小示例所示。
SPSS CHAR.SUBSTR
- 最小示例
COMPUTE var_2 = CHAR.SUBSTR(var_1,3,2).
这三个参数的含义如下:
- var_1:表示从中提取子字符串的变量。
- 3:表示要提取的第一个字符的位置。
- 2:表示要提取的字符数。
总而言之,这个例子意味着 var_2
将由 var_1
的第 3 个和第 4 个字符组成。
SPSS 子字符串语法示例
以下示例使用 webdesigners.sav 数据集。
cd 'C:\xampp\htdocs\spss-tutorials\wp-content\themes\spss-tutorials-10\dont_upload\@external files\SPSS\test_data_creation\webdesigners'.
get file 'webdesigners.sav'.
string fname lname company tld (a30).
compute fname = char.substr(email,1,1).
execute.
compute fname = char.substr(email,3,2).
execute.
compute fname = char.substr(email,1,char.index(email,'.') - 1).
execute.
compute fname = concat(upper(char.substr(fname,1,1)),char.substr(fname,2)).
execute.
compute lname = char.substr(email,char.index(email,'.') + 1,char.index(email,'@') - 1 - char.index(email,'.')).
execute.
compute lname = concat(upper(char.substr(lname,1,1)),char.substr(lname,2)).
execute.
compute company = char.substr(email,char.index(email,'@') + 1).
execute.
compute tld = char.substr(company,char.rindex(company,'.') + 1).
execute.
document 'bal'.
document 'bol'.
display documents.
解释
- 在 SPSS 中,可以使用
CHAR.SUBSTR(a,b,c)
提取子字符串。 - 这里,
a
指的是要从中提取子字符串的字符串。 - 第二个参数
b
指示起始位置(“从第 b 个字母开始”)。 - 第三个参数
c
是子字符串的长度。它可以省略,在这种情况下,将提取起始位置之后的所有字符。 - 如第二个示例所示,
a
和b
不必是静态数字。它们可以替换为(例如)字符串中最后一个空格的位置,该位置由RINDEX
返回。 - 通常可以省略
CHAR
前缀。具体何时可以省略将在 Unicode 模式中进行解释。 - 在许多情况下,仅使用
SUBSTRING
就可以修改原始字符串。这始终适用于由单字节字符组成的字符串。同样,请参阅 Unicode 模式。这在最后一个例子中有所展示。
Python 子字符串示例
begin program.= 'Cat Dog Rat'
pets print pets[4:7]
print pets[pets.rfind(" ") +1:]
end program.
解释
- 在 Python 中,可以使用方括号
**[]**
从字符串中提取子字符串。后者包含要提取的字符的相关索引。 - 此操作称为切片(Slicing)。(切片不仅用于子字符串函数。例如,
mylist[1]
将从名为“mylist”的列表中返回第二个元素。) - 字符范围由冒号
:
指定。 - 例如,
[1:4]
返回第二个到第四个元素。这是因为它使用给定的起始索引和(结束索引 - 1)。 - 类似地,如果省略起始索引(如
[:4]
中),它将返回第一个到第四个元素。 - 最后,如果省略结束索引(
[1:]
),则返回第二个到最后一个元素。